Add int64in/out record support#161
Conversation
Unit Test Results 8 files ± 0 8 suites ±0 10m 12s ⏱️ +18s Results for commit d38df9b. ± Comparison against base commit 4bbc933. This pull request removes 14 and adds 27 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
|
It is necessary as ChannelAccess does not support int64 natively, instead transferring it using a double. This means the value returned from caget is actually a float, which is inconvenient. Fortunately p4p (using PVAccess) does support int64! I deleted some test cases as they were really testing the behaviour of caget/caput, and not pythonSoftIoc itself.
e5fa971 to
d38df9b
Compare
|
Requested changes have been made. Tests are failing due to #158 still waiting for upstream dependencies for Python 3.12. |
Add support for the int64in and int64out record types.
There's two TODOs and some test failures that needs discussion:
DBR_*types we use come fromepicscorelibs, however its latest version does not define the (new)DBR_INT64andDBR_UINT64types. Is it worth trying to get a PR through that module that adds these codes before merging this?cagetnot being able to transport an int64, instead transporting it as a float. Should I special-case these tests to accept this, or is there a better mechanism to force what we want? I see thatcagetdoes NOT claim to supportdatatype=DBR_INT64.Various reference materials:
Changelog for introduction of the records: https://github.com/epics-base/epics-base/blob/7.0/documentation/RELEASE_NOTES.md#ioc-database-support-for-64-bit-integers
EPICS header file that defines both DBR_ and DBF_ codes: https://github.com/epics-base/epics-base/blob/7.0/modules/database/src/ioc/dbStatic/dbFldTypes.h
Closes #160 Closes #118